﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using vudu.ClasesDominio;
using vudu.Logica.Clases;
using vudu.Datos.SqlServer;
using System.Data.SqlClient;
using vudu.Logica.Fachada;

namespace vudu.Pruebas
{
    [TestFixture]

    public class PruebaProfesor
    {

        [Test]

        public void PruebaEnlaceAgregarProfesor()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            Profesor profesor = new Profesor();

            int prueba;

            profesor.Cedula = 987;
            profesor.Nacionalidad = "E";
            profesor.Nombre = "PruebaNombre";
            profesor.Apellido = "PruebaApellido";
            profesor.Email = "prueba@prueba.com";
            profesor.FechaNacimiento = Convert.ToDateTime("07/02/1985");
            profesor.Sexo = "F";
            profesor.Telefono = "5675555";
            profesor.FechaInicio = Convert.ToDateTime("01/01/2012");
            profesor.FechaFin = Convert.ToDateTime("01/02/2013");
            profesor.Cargo = "Profesor";
            profesor.TiempoLaboral = "Completo";

            prueba = fachada.EnlaceAgregarProfesor(profesor, 1);
            Assert.IsNotNull(prueba);


        }

        [Test]

        public void PruebaEnlaceLogicoEliminarProfesor()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            bool respuesta;

            respuesta = fachada.EnlaceLogicoEliminarProfesor(1, 1);

            Assert.IsTrue(respuesta);
        }

        [Test]

        public void PruebaEnlaceLogicoModificarProfesor()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            int modificado;

            Profesor profesor = new Profesor();

            profesor.Crn = 1;
            profesor.Nacionalidad = "E";
            profesor.Nombre = "PruebaNombre";
            profesor.Apellido = "PruebaApellido";
            profesor.Email = "prueba@prueba.com";
            profesor.FechaNacimiento = Convert.ToDateTime("07/02/1985");
            profesor.Sexo = "F";
            profesor.Telefono = "5675555";
            profesor.FechaInicio = Convert.ToDateTime("01/01/2012");
            profesor.FechaFin = Convert.ToDateTime("01/02/2013");
            profesor.Cargo = "Profesor";
            profesor.TiempoLaboral = "Completo";

            modificado = fachada.EnlaceModificarProfesor(profesor, 1);

            Assert.AreNotEqual(modificado,0);
            Assert.AreEqual(modificado,1);

        }

        [Test]

        public void PruebaEnlaceConsultarProfesores()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            List<Profesor> listaProfesor = new List<Profesor>();

            listaProfesor = fachada.ConsultarProfesores(1);

            Assert.IsNotNull(listaProfesor);

        }

        [Test]

        public void PruebaEnlaceMateriasAsignadasProfesor()

        {
            EnlaceLogico fachada = new EnlaceLogico();

            List<SeccionMateria> listaseccion = new List<SeccionMateria>();

            listaseccion = fachada.MateriasAsignadasProfesor(1,1);

            Assert.IsNotNull(listaseccion);
        }

        [Test]

        public void PruebaEnlaceEnlaceConsultarProfesorExistente()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            Profesor profesor = new Profesor();

            profesor = fachada.EnlaceConsultarProfesorExistente(14990555, 1);

            Assert.AreEqual(profesor.Cedula,14990555);
        }

        [Test]

        public void PruebaEnlaceAgregarProfesorExistente()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            Profesor profesor = new Profesor();

            int agregado;

            profesor.Cedula = 14990555;
            profesor.FechaInicio = Convert.ToDateTime("01/01/2012");
            profesor.FechaFin = Convert.ToDateTime("01/02/2013");
            profesor.Cargo = "Profesor";
            profesor.TiempoLaboral = "Completo";

            agregado = fachada.EnlaceAgregarProfesorExistente(profesor, 5);
            
            Assert.AreNotEqual(agregado,0);
            
        }

        [Test]

        public void PruebaEnlaceLogicoConsultarMateriaEscuela()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            List<Materia> lista = new List<Materia>();

            lista = fachada.EnlaceLogicoConsultarMateriaEscuela(1);

            Assert.IsNotNull(lista);

        }

        [Test]

        public void PruebaEnlaceLogicoConsultarProfesorPorEscuelaMateria()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            List<Profesor> listaProf = new List<Profesor>();

            listaProf = fachada.EnlaceLogicoConsultarProfesorPorEscuelaMateria
                (1, "Sistemas Distribuidos");

            Assert.IsNotNull(listaProf);
        }

        [Test]

        public void PruebaEnlaceLogicoModificarPerfilProfesor()
        {
            EnlaceLogico fachada = new EnlaceLogico();

            int perfilModificado;

            Profesor profesor = new Profesor();

            profesor.Crn = 1;
            profesor.Nacionalidad = "E";
            profesor.Nombre = "PruebaNombre";
            profesor.Apellido = "PruebaApellido";
            profesor.Email = "pruebaMod@prueba.com";
            profesor.FechaNacimiento = Convert.ToDateTime("07/02/1985");
            profesor.Sexo = "F";
            profesor.Telefono = "5675550";
            profesor.FechaInicio = Convert.ToDateTime("01/01/2012");
            profesor.FechaFin = Convert.ToDateTime("01/02/2013");
            profesor.Cargo = "Profesor";
            profesor.TiempoLaboral = "Completo";

            perfilModificado = fachada.EnlaceLogicoModificarPerfilProfesor(profesor);
            
            Assert.AreNotEqual(perfilModificado, 0);
            Assert.AreEqual(perfilModificado, 1);

        }
    }
}